
// 被代理的函数
function add( a , b ) {
    if( typeof a != 'number' || typeof b != 'number'){
        throw Error( '参与加法运算的两个操作数必须是number类型' );
    }
    return a + b ;
}

let handler = {
    apply( target , thisArg , arguments ){
        //console.log( "target: " , target );
        //console.log( "thisArg: " , thisArg );
        //console.log( "arguments: " , arguments );
        console.log( `函数${target.name}即将执行` );
        let value = target( ...arguments );
        console.log( `函数${target.name}执行结束` );
        return value ;
    }
}

// 代理函数: 用来代理其它函数的函数
let sum = new Proxy( add , handler );

console.log( sum( 1 , 2 ) );